package com.ruoyi.gcgl.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 投标管理对象 sj_bidding
 * 
 * @author ruoyi
 * @date 2025-08-04
 */
public class SjBidding extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 申请编号 */
    @Excel(name = "申请编号")
    private String orderNo;

    /** 合同ID */
    @Excel(name = "合同ID")
    private Long gcProjectid;

    /** 投标项目名称 */
    @Excel(name = "投标项目名称")
    private String projectName;

    /** 客户ID */
    @Excel(name = "客户ID")
    private Long customerId;

    /** 客户单位 */
    @Excel(name = "客户单位")
    private String customerName;

    /** 招标代理 */
    @Excel(name = "招标代理")
    private String zbdlgs;

    /** 项目资金来源 */
    @Excel(name = "项目资金来源")
    private String xmzjly;

    /** 招标项目编号 */
    @Excel(name = "招标项目编号")
    private String biddingNo;

    /** 项目来源 */
    @Excel(name = "项目来源")
    private String xmly;

    /** 开标地点 */
    @Excel(name = "开标地点")
    private String kbdd;

    /** 投标截止日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "投标截止日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date tbjzAt;

    /** 开标日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开标日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date kbAt;

    /** 投标控制价 */
    @Excel(name = "投标控制价")
    private BigDecimal tbkzj;

    /** 投标负责人 */
    @Excel(name = "投标负责人")
    private String tbfzr;

    /** 保证金金额 */
    @Excel(name = "保证金金额")
    private BigDecimal bzjje;

    /** 必须付款日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "必须付款日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date bxfkAt;

    /** 预计退款日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预计退款日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date yjtkAt;

    /** 状态 */
    @Excel(name = "状态")
    private Integer status;

    /** 删除标记 0:删除 1:没删除 */
    @Excel(name = "删除标记 0:删除 1:没删除")
    private Integer deleteFlag;

    /** 创建人 */
    @Excel(name = "创建人")
    private String createUser;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createAt;

    /** 修改人 */
    @Excel(name = "修改人")
    private String updateUser;

    /** 修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updateAt;
    
    private String owner;//申请人
    private Integer ownerId;
    private String deptName;//申请部门
    private Integer deptId;
    private Integer tbType;//投标类型
    private Integer proType;//项目类型
    private String zbFile;//招标文件
    private String zbFilevo;
    private String lhtf;//联合体方
    private Long chanceId;
    private String chanceName;//商机跟踪
    private String memo;
    
    private Long approveid;
    private String approvename;
    private String processInstanceId;
    private Integer biddingstatus;
    
    private BigDecimal biddingJe;
    private Long tbfzrId;
    
    private List<SjBiddingitem> items;
    
    private List<Long> roleIds;
    
    private String sfbzdj;
    private Integer sfbzdjId;
    
    private String bmspr;
    private Integer bmsprId;
    
    public String getSfbzdj() {
		return sfbzdj;
	}

	public void setSfbzdj(String sfbzdj) {
		this.sfbzdj = sfbzdj;
	}

	public Integer getSfbzdjId() {
		return sfbzdjId;
	}

	public void setSfbzdjId(Integer sfbzdjId) {
		this.sfbzdjId = sfbzdjId;
	}

	public String getBmspr() {
		return bmspr;
	}

	public void setBmspr(String bmspr) {
		this.bmspr = bmspr;
	}

	public Integer getBmsprId() {
		return bmsprId;
	}

	public void setBmsprId(Integer bmsprId) {
		this.bmsprId = bmsprId;
	}

	public List<Long> getRoleIds() {
		return roleIds;
	}

	public void setRoleIds(List<Long> roleIds) {
		this.roleIds = roleIds;
	}
    
	public Long getTbfzrId() {
		return tbfzrId;
	}
	public void setTbfzrId(Long tbfzrId) {
		this.tbfzrId = tbfzrId;
	}
	public BigDecimal getBiddingJe() {
		return biddingJe;
	}
	public void setBiddingJe(BigDecimal biddingJe) {
		this.biddingJe = biddingJe;
	}
	public List<SjBiddingitem> getItems() {
		return items;
	}
	public void setItems(List<SjBiddingitem> items) {
		this.items = items;
	}
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getOrderNo() {
		return orderNo;
	}
	public void setOrderNo(String orderNo) {
		this.orderNo = orderNo;
	}
	public Long getGcProjectid() {
		return gcProjectid;
	}
	public void setGcProjectid(Long gcProjectid) {
		this.gcProjectid = gcProjectid;
	}
	public String getProjectName() {
		return projectName;
	}
	public void setProjectName(String projectName) {
		this.projectName = projectName;
	}
	public Long getCustomerId() {
		return customerId;
	}
	public void setCustomerId(Long customerId) {
		this.customerId = customerId;
	}
	public String getCustomerName() {
		return customerName;
	}
	public void setCustomerName(String customerName) {
		this.customerName = customerName;
	}
	public String getZbdlgs() {
		return zbdlgs;
	}
	public void setZbdlgs(String zbdlgs) {
		this.zbdlgs = zbdlgs;
	}
	public String getXmzjly() {
		return xmzjly;
	}
	public void setXmzjly(String xmzjly) {
		this.xmzjly = xmzjly;
	}
	public String getBiddingNo() {
		return biddingNo;
	}
	public void setBiddingNo(String biddingNo) {
		this.biddingNo = biddingNo;
	}
	public String getXmly() {
		return xmly;
	}
	public void setXmly(String xmly) {
		this.xmly = xmly;
	}
	public String getKbdd() {
		return kbdd;
	}
	public void setKbdd(String kbdd) {
		this.kbdd = kbdd;
	}
	public Date getTbjzAt() {
		return tbjzAt;
	}
	public void setTbjzAt(Date tbjzAt) {
		this.tbjzAt = tbjzAt;
	}
	public Date getKbAt() {
		return kbAt;
	}
	public void setKbAt(Date kbAt) {
		this.kbAt = kbAt;
	}
	public BigDecimal getTbkzj() {
		return tbkzj;
	}
	public void setTbkzj(BigDecimal tbkzj) {
		this.tbkzj = tbkzj;
	}
	public String getTbfzr() {
		return tbfzr;
	}
	public void setTbfzr(String tbfzr) {
		this.tbfzr = tbfzr;
	}
	public BigDecimal getBzjje() {
		return bzjje;
	}
	public void setBzjje(BigDecimal bzjje) {
		this.bzjje = bzjje;
	}
	public Date getBxfkAt() {
		return bxfkAt;
	}
	public void setBxfkAt(Date bxfkAt) {
		this.bxfkAt = bxfkAt;
	}
	public Date getYjtkAt() {
		return yjtkAt;
	}
	public void setYjtkAt(Date yjtkAt) {
		this.yjtkAt = yjtkAt;
	}
	public Integer getStatus() {
		return status;
	}
	public void setStatus(Integer status) {
		this.status = status;
	}
	public Integer getDeleteFlag() {
		return deleteFlag;
	}
	public void setDeleteFlag(Integer deleteFlag) {
		this.deleteFlag = deleteFlag;
	}
	public String getCreateUser() {
		return createUser;
	}
	public void setCreateUser(String createUser) {
		this.createUser = createUser;
	}
	public Date getCreateAt() {
		return createAt;
	}
	public void setCreateAt(Date createAt) {
		this.createAt = createAt;
	}
	public String getUpdateUser() {
		return updateUser;
	}
	public void setUpdateUser(String updateUser) {
		this.updateUser = updateUser;
	}
	public Date getUpdateAt() {
		return updateAt;
	}
	public void setUpdateAt(Date updateAt) {
		this.updateAt = updateAt;
	}
	public String getOwner() {
		return owner;
	}
	public void setOwner(String owner) {
		this.owner = owner;
	}
	public Integer getOwnerId() {
		return ownerId;
	}
	public void setOwnerId(Integer ownerId) {
		this.ownerId = ownerId;
	}
	public String getDeptName() {
		return deptName;
	}
	public void setDeptName(String deptName) {
		this.deptName = deptName;
	}
	public Integer getDeptId() {
		return deptId;
	}
	public void setDeptId(Integer deptId) {
		this.deptId = deptId;
	}
	public Integer getTbType() {
		return tbType;
	}
	public void setTbType(Integer tbType) {
		this.tbType = tbType;
	}
	public Integer getProType() {
		return proType;
	}
	public void setProType(Integer proType) {
		this.proType = proType;
	}
	public String getZbFile() {
		return zbFile;
	}
	public void setZbFile(String zbFile) {
		this.zbFile = zbFile;
	}
	public String getZbFilevo() {
		return zbFilevo;
	}
	public void setZbFilevo(String zbFilevo) {
		this.zbFilevo = zbFilevo;
	}
	public String getLhtf() {
		return lhtf;
	}
	public void setLhtf(String lhtf) {
		this.lhtf = lhtf;
	}
	public Long getChanceId() {
		return chanceId;
	}
	public void setChanceId(Long chanceId) {
		this.chanceId = chanceId;
	}
	public String getChanceName() {
		return chanceName;
	}
	public void setChanceName(String chanceName) {
		this.chanceName = chanceName;
	}
	public String getMemo() {
		return memo;
	}
	public void setMemo(String memo) {
		this.memo = memo;
	}
	public Long getApproveid() {
		return approveid;
	}
	public void setApproveid(Long approveid) {
		this.approveid = approveid;
	}
	public String getApprovename() {
		return approvename;
	}
	public void setApprovename(String approvename) {
		this.approvename = approvename;
	}
	public String getProcessInstanceId() {
		return processInstanceId;
	}
	public void setProcessInstanceId(String processInstanceId) {
		this.processInstanceId = processInstanceId;
	}
	public Integer getBiddingstatus() {
		return biddingstatus;
	}
	public void setBiddingstatus(Integer biddingstatus) {
		this.biddingstatus = biddingstatus;
	}
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((approveid == null) ? 0 : approveid.hashCode());
		result = prime * result
				+ ((approvename == null) ? 0 : approvename.hashCode());
		result = prime * result
				+ ((biddingNo == null) ? 0 : biddingNo.hashCode());
		result = prime * result
				+ ((biddingstatus == null) ? 0 : biddingstatus.hashCode());
		result = prime * result + ((bxfkAt == null) ? 0 : bxfkAt.hashCode());
		result = prime * result + ((bzjje == null) ? 0 : bzjje.hashCode());
		result = prime * result
				+ ((chanceId == null) ? 0 : chanceId.hashCode());
		result = prime * result
				+ ((chanceName == null) ? 0 : chanceName.hashCode());
		result = prime * result
				+ ((createAt == null) ? 0 : createAt.hashCode());
		result = prime * result
				+ ((createUser == null) ? 0 : createUser.hashCode());
		result = prime * result
				+ ((customerId == null) ? 0 : customerId.hashCode());
		result = prime * result
				+ ((customerName == null) ? 0 : customerName.hashCode());
		result = prime * result
				+ ((deleteFlag == null) ? 0 : deleteFlag.hashCode());
		result = prime * result + ((deptId == null) ? 0 : deptId.hashCode());
		result = prime * result
				+ ((deptName == null) ? 0 : deptName.hashCode());
		result = prime * result
				+ ((gcProjectid == null) ? 0 : gcProjectid.hashCode());
		result = prime * result + ((id == null) ? 0 : id.hashCode());
		result = prime * result + ((kbAt == null) ? 0 : kbAt.hashCode());
		result = prime * result + ((kbdd == null) ? 0 : kbdd.hashCode());
		result = prime * result + ((lhtf == null) ? 0 : lhtf.hashCode());
		result = prime * result + ((memo == null) ? 0 : memo.hashCode());
		result = prime * result + ((orderNo == null) ? 0 : orderNo.hashCode());
		result = prime * result + ((owner == null) ? 0 : owner.hashCode());
		result = prime * result + ((ownerId == null) ? 0 : ownerId.hashCode());
		result = prime * result + ((proType == null) ? 0 : proType.hashCode());
		result = prime
				* result
				+ ((processInstanceId == null) ? 0 : processInstanceId
						.hashCode());
		result = prime * result
				+ ((projectName == null) ? 0 : projectName.hashCode());
		result = prime * result + ((status == null) ? 0 : status.hashCode());
		result = prime * result + ((tbType == null) ? 0 : tbType.hashCode());
		result = prime * result + ((tbfzr == null) ? 0 : tbfzr.hashCode());
		result = prime * result + ((tbjzAt == null) ? 0 : tbjzAt.hashCode());
		result = prime * result + ((tbkzj == null) ? 0 : tbkzj.hashCode());
		result = prime * result
				+ ((updateAt == null) ? 0 : updateAt.hashCode());
		result = prime * result
				+ ((updateUser == null) ? 0 : updateUser.hashCode());
		result = prime * result + ((xmly == null) ? 0 : xmly.hashCode());
		result = prime * result + ((xmzjly == null) ? 0 : xmzjly.hashCode());
		result = prime * result + ((yjtkAt == null) ? 0 : yjtkAt.hashCode());
		result = prime * result + ((zbFile == null) ? 0 : zbFile.hashCode());
		result = prime * result
				+ ((zbFilevo == null) ? 0 : zbFilevo.hashCode());
		result = prime * result + ((zbdlgs == null) ? 0 : zbdlgs.hashCode());
		return result;
	}
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		SjBidding other = (SjBidding) obj;
		if (approveid == null) {
			if (other.approveid != null)
				return false;
		} else if (!approveid.equals(other.approveid))
			return false;
		if (approvename == null) {
			if (other.approvename != null)
				return false;
		} else if (!approvename.equals(other.approvename))
			return false;
		if (biddingNo == null) {
			if (other.biddingNo != null)
				return false;
		} else if (!biddingNo.equals(other.biddingNo))
			return false;
		if (biddingstatus == null) {
			if (other.biddingstatus != null)
				return false;
		} else if (!biddingstatus.equals(other.biddingstatus))
			return false;
		if (bxfkAt == null) {
			if (other.bxfkAt != null)
				return false;
		} else if (!bxfkAt.equals(other.bxfkAt))
			return false;
		if (bzjje == null) {
			if (other.bzjje != null)
				return false;
		} else if (!bzjje.equals(other.bzjje))
			return false;
		if (chanceId == null) {
			if (other.chanceId != null)
				return false;
		} else if (!chanceId.equals(other.chanceId))
			return false;
		if (chanceName == null) {
			if (other.chanceName != null)
				return false;
		} else if (!chanceName.equals(other.chanceName))
			return false;
		if (createAt == null) {
			if (other.createAt != null)
				return false;
		} else if (!createAt.equals(other.createAt))
			return false;
		if (createUser == null) {
			if (other.createUser != null)
				return false;
		} else if (!createUser.equals(other.createUser))
			return false;
		if (customerId == null) {
			if (other.customerId != null)
				return false;
		} else if (!customerId.equals(other.customerId))
			return false;
		if (customerName == null) {
			if (other.customerName != null)
				return false;
		} else if (!customerName.equals(other.customerName))
			return false;
		if (deleteFlag == null) {
			if (other.deleteFlag != null)
				return false;
		} else if (!deleteFlag.equals(other.deleteFlag))
			return false;
		if (deptId == null) {
			if (other.deptId != null)
				return false;
		} else if (!deptId.equals(other.deptId))
			return false;
		if (deptName == null) {
			if (other.deptName != null)
				return false;
		} else if (!deptName.equals(other.deptName))
			return false;
		if (gcProjectid == null) {
			if (other.gcProjectid != null)
				return false;
		} else if (!gcProjectid.equals(other.gcProjectid))
			return false;
		if (id == null) {
			if (other.id != null)
				return false;
		} else if (!id.equals(other.id))
			return false;
		if (kbAt == null) {
			if (other.kbAt != null)
				return false;
		} else if (!kbAt.equals(other.kbAt))
			return false;
		if (kbdd == null) {
			if (other.kbdd != null)
				return false;
		} else if (!kbdd.equals(other.kbdd))
			return false;
		if (lhtf == null) {
			if (other.lhtf != null)
				return false;
		} else if (!lhtf.equals(other.lhtf))
			return false;
		if (memo == null) {
			if (other.memo != null)
				return false;
		} else if (!memo.equals(other.memo))
			return false;
		if (orderNo == null) {
			if (other.orderNo != null)
				return false;
		} else if (!orderNo.equals(other.orderNo))
			return false;
		if (owner == null) {
			if (other.owner != null)
				return false;
		} else if (!owner.equals(other.owner))
			return false;
		if (ownerId == null) {
			if (other.ownerId != null)
				return false;
		} else if (!ownerId.equals(other.ownerId))
			return false;
		if (proType == null) {
			if (other.proType != null)
				return false;
		} else if (!proType.equals(other.proType))
			return false;
		if (processInstanceId == null) {
			if (other.processInstanceId != null)
				return false;
		} else if (!processInstanceId.equals(other.processInstanceId))
			return false;
		if (projectName == null) {
			if (other.projectName != null)
				return false;
		} else if (!projectName.equals(other.projectName))
			return false;
		if (status == null) {
			if (other.status != null)
				return false;
		} else if (!status.equals(other.status))
			return false;
		if (tbType == null) {
			if (other.tbType != null)
				return false;
		} else if (!tbType.equals(other.tbType))
			return false;
		if (tbfzr == null) {
			if (other.tbfzr != null)
				return false;
		} else if (!tbfzr.equals(other.tbfzr))
			return false;
		if (tbjzAt == null) {
			if (other.tbjzAt != null)
				return false;
		} else if (!tbjzAt.equals(other.tbjzAt))
			return false;
		if (tbkzj == null) {
			if (other.tbkzj != null)
				return false;
		} else if (!tbkzj.equals(other.tbkzj))
			return false;
		if (updateAt == null) {
			if (other.updateAt != null)
				return false;
		} else if (!updateAt.equals(other.updateAt))
			return false;
		if (updateUser == null) {
			if (other.updateUser != null)
				return false;
		} else if (!updateUser.equals(other.updateUser))
			return false;
		if (xmly == null) {
			if (other.xmly != null)
				return false;
		} else if (!xmly.equals(other.xmly))
			return false;
		if (xmzjly == null) {
			if (other.xmzjly != null)
				return false;
		} else if (!xmzjly.equals(other.xmzjly))
			return false;
		if (yjtkAt == null) {
			if (other.yjtkAt != null)
				return false;
		} else if (!yjtkAt.equals(other.yjtkAt))
			return false;
		if (zbFile == null) {
			if (other.zbFile != null)
				return false;
		} else if (!zbFile.equals(other.zbFile))
			return false;
		if (zbFilevo == null) {
			if (other.zbFilevo != null)
				return false;
		} else if (!zbFilevo.equals(other.zbFilevo))
			return false;
		if (zbdlgs == null) {
			if (other.zbdlgs != null)
				return false;
		} else if (!zbdlgs.equals(other.zbdlgs))
			return false;
		return true;
	}
	@Override
	public String toString() {
		return "SjBidding [id=" + id + ", orderNo=" + orderNo
				+ ", gcProjectid=" + gcProjectid + ", projectName="
				+ projectName + ", customerId=" + customerId
				+ ", customerName=" + customerName + ", zbdlgs=" + zbdlgs
				+ ", xmzjly=" + xmzjly + ", biddingNo=" + biddingNo + ", xmly="
				+ xmly + ", kbdd=" + kbdd + ", tbjzAt=" + tbjzAt + ", kbAt="
				+ kbAt + ", tbkzj=" + tbkzj + ", tbfzr=" + tbfzr + ", bzjje="
				+ bzjje + ", bxfkAt=" + bxfkAt + ", yjtkAt=" + yjtkAt
				+ ", status=" + status + ", deleteFlag=" + deleteFlag
				+ ", createUser=" + createUser + ", createAt=" + createAt
				+ ", updateUser=" + updateUser + ", updateAt=" + updateAt
				+ ", owner=" + owner + ", ownerId=" + ownerId + ", deptName="
				+ deptName + ", deptId=" + deptId + ", tbType=" + tbType
				+ ", proType=" + proType + ", zbFile=" + zbFile + ", zbFilevo="
				+ zbFilevo + ", lhtf=" + lhtf + ", chanceId=" + chanceId
				+ ", chanceName=" + chanceName + ", memo=" + memo
				+ ", approveid=" + approveid + ", approvename=" + approvename
				+ ", processInstanceId=" + processInstanceId
				+ ", biddingstatus=" + biddingstatus + "]";
	}
}